﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace QldtSdh.GUI.DaoTao
{
    using DAL;
    using DAL.Models;

    public partial class FormQuanLyNamHocHocKy_ChiTiet : QldtSdh.GUI.Common.BaseDialog
    {
        public HocKy HocKy { get; private set; }
        private bool _tuDongTinhNamSau = true;

        public FormQuanLyNamHocHocKy_ChiTiet(DAL.Models.HocKy hocKy = null)
        {
            InitializeComponent();
            this.HocKy = hocKy;
            _tuDongTinhNamSau = false;
            if (hocKy != null)
            {
                txtNamHoc.Text = hocKy.NamHoc.ToString();
                txtNamHoc2.Text = (hocKy.NamHoc + 1).ToString();
                nudSoThuTuHocKy.Value = hocKy.SoThuTuHocKy;
                chkDangHoatDong.Checked = hocKy.DangHoatDong;
            }
            _tuDongTinhNamSau = true;
            chkDangHoatDong.Checked = true;
        }

        private void txtNamHoc_TextChanged(object sender, EventArgs e)
        {
            if (_tuDongTinhNamSau == false)
                return;
            try
            {
                var namHoc = Convert.ToInt32(txtNamHoc.Text.Trim());
                if (namHoc < 2000 || namHoc > 2050)
                    throw new Exception("!");
                txtNamHoc2.Text = (namHoc + 1).ToString();
                txtNamHoc2.BackColor = SystemColors.Control;
            }
            catch
            {
                txtNamHoc2.Text = "";
                txtNamHoc2.BackColor = Color.LightPink;
            }
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            #region Thu thập dữ liệu
            int namHoc = -1;
            try
            {
                namHoc = Convert.ToInt32(txtNamHoc.Text.Trim());
            }
            catch
            {
                epMain.SetError(txtNamHoc, "Năm học phải là số nguyên nằm trong khoảng từ 2000 đến 2050");
                txtNamHoc.Focus();
                return;
            }
            int soThuTuHocKy = -1;
            try { soThuTuHocKy = Convert.ToInt32(nudSoThuTuHocKy.Value); }
            catch
            {
                epMain.SetError(nudSoThuTuHocKy, "Học kỳ phải là số nguyên nằm trong khoảng từ 1 đến 3");
                nudSoThuTuHocKy.Focus();
                return;
            }
            bool dangHoatDong = chkDangHoatDong.Checked;
            var maHocKyGUID =
                string.Format("{0}.{1}", namHoc, soThuTuHocKy);
                //System.Guid.NewGuid().ToString();
            #endregion

            #region Thực hiện bổ sung
            var hocKy = new HocKy() { MaHocKyGUID = maHocKyGUID, NamHoc = namHoc, SoThuTuHocKy = soThuTuHocKy, DangHoatDong = dangHoatDong };
            try
            {
                BLL.BizHocKy.Add(hocKy);
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }
            catch (Exception exc)
            {
                Utils.DialogUtils.ShowError("Không bổ sung được học kỳ.\nChi tiết lỗi: " + exc.Message);
            }
            #endregion
        }
    }
}
